package cn.iocoder.yudao.module.iot.gateway.protocol.tcp.router.handler;

import cn.iocoder.yudao.module.iot.core.mq.message.IotDeviceMessage;
import io.vertx.core.net.NetSocket;

/**
 * 定义协议处理器接口
 */
public interface ProtocolHandler {
    /**
     * 处理消息
     *
     * @param clientId  客户端ID
     * @param message   消息内容
     * @param codecType 编解码器类型
     * @param socket    网络连接
     */
    void handle(String clientId, IotDeviceMessage message, String codecType, NetSocket socket, String serviceId);

    /**
     * 获取处理器类型 (auth/business)
     */
    default String getHandlerType() {
        return "business";
    }

    /**
     * 获取协议类型
     */
    default String getProtocolType() {
        return "default";
    }
}
